package com.hc.service;

public interface IAuthorizationService {
    /**
     * 登录并生成token
     *
     * @param userName 用户名
     * @param password 密码
     * @param ip       IP地址
     * @return token
     */
    String doLogin(String userName, String password, String ip);

    /**
     * 验证token状态
     *
     * @param token 要验证的token
     * @return TokenStatus.VALID , INVALID , REFRESH
     */
    TokenStatus verifyToken(String token);

    /**
     * 无条件的刷新token
     *
     * @param token 被刷新的那个
     * @return 刷新后的那个
     */
    String refreshToken(String token);

    enum TokenStatus {
        VALID, INVALID, REFRESH
    }


    String getCommunityId(String token);
}
